Из чего состоит 3D модель. Создание 3D моделей
Любую даже самую сложную фигуру или поверхность можно представить в виде множества простых фигур: такая идеальная фигура, как шар (точнее, сфера), в компьютерной графике в любом случае представляется в виде множества треугольников и четырёхугольников. Чем их будет больше, тем выше степень приближения, то есть, тем более гладкой, тем более сферической будет поверхность. Но опять-таки, это вопрос степени приближения.
I. Из чего состоит трёхмерная модель? - вершины, грани, полигоны, текстуры, карты нормалей
Вообще, если приходится объяснять в подробностях, что из себя представляет трёхмерная модель, неизбежно придётся забираться в геометрические дебри, - без них никак. И как ни объясняй всё "на пальцах", всё-таки обойтись без ключевых терминов, увы, не получится.
Итак:
1. Вершина (ед. Vertex, мн. Vertices) - грубо говоря, это абстрактная геометрическая точка с координатами X, Y и Z. Вершиной она называется, впрочем, потому, что является крайней точкой либо замкнутого полигона (плоского многоугольника), либо объёмной фигуры.
2. Грань (Edge) - отрезок прямой, соединяющий две вершины. Опять же, в трёхмерной графике это не самостоятельное нечто, а лишь ограничитель для полигонов.
3. Полигон (poly, polygon) - основная функциональная составляющая: плоская многоугольная фигура (обычно трёхмерные редакторы и другие приложения предпочитают оперировать только треугольниками и четырёхугольниками), из множества которых состоит поверхности трёхмерной фигуры.
Любую даже самую сложную фигуру или поверхность можно представить в виде множества простых фигур: такая идеальная фигура, как шар (точнее, сфера), в компьютерной графике в любом случае представляется в виде множества треугольников и четырёхугольников. Чем их будет больше, тем выше степень приближения, то есть, тем более гладкой, тем более сферической будет поверхность. Но опять-таки, это вопрос степени приближения.
4. Текстура - изображение, покрывающее поверхность трёхмерной фигуры, используется для придания трёхмерной фигуре материальной достоверности, так сказать. О текстурах и материалах подробно речь пойдёт в следующей части.
5. Нормаль и карта нормалей - нормалью в принципе называется вектор, перпендикулярный поверхности в каждой данной её точке. Карта нормалей - это определённого рода текстура, цветовая информация которой (то есть, цвет каждого пикселя) считывается как информация о расположении нормали каждой точке того или иного объекта; с помощью карты нормали можно сформировать иллюзию более сложной поверхности, чем она есть на самом деле.
Зачем это нужно? Для экономии полигонов, конечно. Благодаря картам нормалей низкополигональным моделям можно придать вид очень высокополигональных (естественно, с известной долей приближения, но всё-таки). Ранее эта технология не слишком активно применялась по той причине, что карты нормали были крайне сложны в изготовлении - до появления таких пакетов, как MudBoxи ZBrush (и Blender3D), в которых поддерживается технология "скульптурного" моделирования, изготовить правильную карту нормалей было подчас задачей весьма и весьма нетривиальной.
В 2004 году id Software выпустили Doom III, где Normal Mapping использовался повсеместно, и с тех пор эта технология стала уже некоторым образом "общим местом". Особенно в силу того, что "скульптурное" моделирование значительно облегчает жизнь в плане дизайна.
II. Скульптурное моделирование
Собственно, это определение стоит понимать самым буквальным образом, это именно имитация ваяния, точнее, лепки из пластилина или глины. Инструментарий, который предоставляют MudBox, ZBrush и Blender, позволяет производить над моделью массу хитроумных манипуляций, в точности так, как если бы она была из глины или какого-то другого подобного материала. В ZBrush даже цвет по умолчанию очень характерный: глинисто-красный.
Ну, а что с его помощью можно сделать - так вот пожалуйста:
Но это - сотни тысяч, миллионы полигонов. А качественно снятая карта нормалей, как уже сказано выше, позволяет создать иллюзию множества мелких деталей на совсем простой поверхности.
III. Создание 3D модели: придать простому вид сложного
Итак, практически на ваших глазах создадим самое примитивное нечто: кубик. Примитивнее некуда: 8 вершин, 6 граней, 12 рёбер - базовая структура.
Теперь у нас в программе есть режим "лепки". Используем по полной: подвергнем форму кубику ужасным истязаниям:
В результате у нас получилось вот такое странное нечто: высокополигональная, детализированная фигура с очень сложной поверхностью, где счёт вершинам и полигонам переваливает за 45 тысяч. А в чем проблема? — спросит внимательный читатель. А в том, что, когда мы скажем нашему компьютеру: "преврати вот эту штуку в плоскую картинку, чтобы мы другу послали ее или напечатали на принтере" — то компьютер будет очень долго думать над этой задачей.
Но об этом речь пойдет в другой статье. Следите, так сказать, за обновлениями. Между тем, с помощью карты нормалей самым простым фигурам можно придавать вид очень сложных. Например, идеально гладкой поверхности придать вид заметной шершавости.
Путём не слишком хитрых (но и не слишком простых) манипуляций получаем пресловутую карту нормалей: в сущности, это не более чем текстура, правда, со своим особым цветовым пространством, где цветовая информация - а именно, комбинация красного (R), зелёного (G) и синего (B) цветов для каждого пикселя — описывает его видимое положение в системе координат X, Y и Z, каждый цвет соответствует одной из осей координат. Вот так выглядит карта нормалей:
Почему именно так? - Потому что для её получения потребовалось сделать UV-развёртку, т.е. осуществить развёртку поверхности трёхмерной фигуры на плоскость (как и зачем это делается смотрите в следующей статье, пока на этом заострять внимание не будем). Накладываем карту нормалей и Voila!..
Так, отставить. Фокус удался не полностью. Почему? Во-первых, потому что в сложной фигуре были искривлены боковые грани, и существенно. А на простом кубе они остались на месте. Если бы они были скруглены и искажены примерно (но только примерно) так же, как у высокополигональной фигуры, карта нормалей смотрелась бы намного более убедительно.
Кроме того: лунки на гранях высокополигональной фигуры слишком глубокие. Карты нормалей хороши для того, чтобы имитировать небольшие шероховатости, а не глубокие рытвины на плоской поверхности. Более того, если поверхность с наложенной картой нормалей оказывается под большим углом к зрителю (как на иллюстрации), обман становится очевиден. Опять-таки: карта нормалей позволяет экономить на полигонах, но лишь до известного предела. Вот так и создается любая 3D модель.
Источник: http://www.vse3d.ru